From a1e78cb3e680774b7a993547c0e78ba3249dd4b4 Mon Sep 17 00:00:00 2001 From: Gerd Moellmann Date: Thu, 7 Dec 2000 15:50:30 +0000 Subject: [PATCH] (read_process_output): Make sure the process marker's position is valid when the process buffer is changed in after-change functions. W3 does that. --- src/process.c | 10 +++++++++- 1 file changed, 9 insertions(+), 1 deletion(-) diff --git a/src/process.c b/src/process.c index cb51af92af3..c91ab2c24fc 100644 --- a/src/process.c +++ b/src/process.c @@ -3055,6 +3055,7 @@ read_process_output (proc, channel) int before, before_byte; int opoint_byte; Lisp_Object text; + struct buffer *b; odeactivate = Vdeactivate_mark; @@ -3120,7 +3121,14 @@ read_process_output (proc, channel) signal_after_change (before, 0, PT - before); update_compositions (before, PT, CHECK_BORDER); - set_marker_both (p->mark, p->buffer, PT, PT_BYTE); + /* Make sure the process marker's position is valid when the + process buffer is changed in the signal_after_change above. + W3 is known to do that. */ + if (BUFFERP (p->buffer) + && (b = XBUFFER (p->buffer), b != current_buffer)) + set_marker_both (p->mark, p->buffer, BUF_PT (b), BUF_PT_BYTE (b)); + else + set_marker_both (p->mark, p->buffer, PT, PT_BYTE); update_mode_lines++; -- 2.30.2